#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import re
import time

"""
python consume_men.py 100MB 1D
python consume_men.py 1GB 1M
第一个参数：表示消耗多少内存(MB/GB)
第二个参数：表示脚本需要执行多长时间
        Y：年
        M：月
        D：日
        H：小时
"""


def print_help():
    print('Usage: ')
    print('python consume_men.py 100MB 1D')
    print('python consume_men.py 1GB 1M')


if __name__ == "__main__":
    print('输入参数：{}'.format(sys.argv))
    # 获取参数
    try:
        free_arg = sys.argv[1].upper()
    except Exception:
        free_arg = '10GB'

    try:
        sleep_arg = sys.argv[2].upper()
    except Exception:
        sleep_arg = '1Y'

    pattern = re.compile('^(\d*)([M|G]B)$')
    match = pattern.match(free_arg)
    if match:
        num = int(match.group(1))
        unit = match.group(2)
        try:
            if unit == 'MB':
                s = ' ' * (num * 1024 * 1024)
            else:
                s = ' ' * (num * 1024 * 1024 * 1024)
            print("消耗："+free_arg+"内存...")
        except MemoryError:
            print("剩余内存不足，内存有溢出......")
    else:
        print_help()

    pattern = re.compile('^(\d*)([Y|M|D|H])$')
    match = pattern.match(sleep_arg)
    if match:
        num = int(match.group(1))
        unit = match.group(2)
        if unit == 'Y':
            time_sleep_num = num * 12 * 30 * 24 * 60 * 60
        elif unit == 'M':
            time_sleep_num = num * 30 * 24 * 60 * 60
        elif unit == 'D':
            time_sleep_num = num * 24 * 60 * 60
        else:
            time_sleep_num = num * 60 * 60
        print("休眠："+str(time_sleep_num)+"秒")
        time.sleep(time_sleep_num)
    else:
        print_help()